package com.itheima.advance.en.demo02;

/**
 * 演示：枚举类中的常见方法
 */
public class SeasonDemo01 {

    public static void main(String[] args) {

        /**
         * String name()										// 获取枚举项的名称
         * int ordinal()										// 返回枚举项在枚举类中的索引值
         * int compareTo(E o)									// 比较两个枚举项，返回的是索引值的差值
         * String toString()									// 返回枚举常量的名称
         * static <T> T valueOf(Class<T> type,String name)  	// 获取指定枚举类中的指定名称的枚举值
         * values()
         */
        // String name()										// 获取枚举项的名称
        String name = Season.SPRING.name();
        System.out.println(name);

        String name2 = Season.SUMMER.name();
        System.out.println(name2);

        System.out.println("--------------------------------------------");

        // int ordinal()										// 返回枚举项在枚举类中的索引值
        System.out.println(Season.SPRING.ordinal());
        System.out.println(Season.WINTER.ordinal());

        System.out.println("---------------------------------------------");

        // int compareTo(E o)									// 比较两个枚举项，返回的是索引值的差值
        Season spring = Season.SPRING ;
        Season winter = Season.WINTER ;
        System.out.println(winter.compareTo(spring));

        System.out.println("---------------------------------------------");

        // String toString()									// 返回枚举常量的名称
        String string = Season.SPRING.toString();
        System.out.println(string);

        System.out.println("----------------------------------------------");

        // static <T> T valueOf(Class<T> type,String name)  	// 获取指定枚举类中的指定名称的枚举值
        Season season = Enum.valueOf(Season.class, "SPRING");
        System.out.println(season);

        System.out.println("----------------------------------------------");

        // values()
        Season[] seasons = Season.values();
        for (Season sea : seasons) {
            System.out.println(sea);
        }

    }

}
